<?php

	session_start();

	require('setlang.php');
	require('Models/connectBDD.php');
	require('Models/basics.php');
	require('Models/formerrors.php');
	require('Models/location.php');
	require('Models/alert.php');
	require('calendar.php');	

	require('Models/ariane.php');
	
	$Ariane = getArianeGenealogy();
	
	$connexion = PDO_BDD_Connect();
	//On se charge de mettre en place le calendrier
	if (!isset($_GET['month']) && !isset($_GET['year']))
	{
		$_GET['month'] = getMonth(time());
		$_GET['year'] = getYear(time());
	}
	
	if (isset($_GET['month']) && isset($_GET['year']))
	{
		$calendar = calendarMonth($_GET['locationId'],$language,$_GET['month'],$_GET['year']);
	}
	else
	{
		$calendar = calendarYear($_GET['locationId'],$_GET['year']);
	}
	//Si on envoie une demande, on teste les inputs
	if (isset($_POST['valider']))
	{

		$errors = getFormErrors(array("e-mail","nom","mail"),"POST");
		if (empty($errors))
		{
			//calculateTimestamp retournera -1 si le temps n'est pas de la bonne forme
			$beginTime = calculateTimestamp($_POST['beginLocation']);
			$endTime = calculateTimestamp($_POST['endingLocation']);
			//Au besoin on swap les temps de début et fin
			if ($beginTime > $endTime)
			{
				$tmp = $endTime;
				$endTime = $beginTime;
				$beginTime = $tmp;
			}
			//On vérifie l'état de la location : 0 signifie occupée, > 0 signifie qu'une location d'état 0 durant la période est disponible, enfin -2 signifie qu'il n'y a aucune location d'état 0
			//Enfin si le retour est -1 c'est que le format de beginTime ou endTime n'est pas bon.
			$state = isFreeBetween($connexion,$_POST['locationId'],$beginTime,$endTime);
			
			if (intval($state) > 0)
			{
				$sent = addAlertToUser($connexion,$_POST['ownerId'],$state,"cnt:#".$_POST['nom'].":#".$_POST['mail'].":#".$beginTime.":#".$endTime);
			}
			elseif ($state == 0)
			{
				$booked = true;
			}
			else
			{
				$invalidTimeFormat = true;
			}
		}
	
	}

require("Views/header.php");
require("Models/location_js.php");
require('Views/demandeReservation.php');

?>
